#include "mmCapImg_UVC.h"
#include "mmFile_Logs.h"

_mmCapImg_UVC mmCapImg_UVC;

bool _mmCapImg_UVC::_Init() {
	if (iiProject.Flag_InitSystem == false) {
		return false;
	}


	Flag_Inited = TRUE;
	return TRUE;
}

bool _mmCapImg_UVC::AutoRun(uuByteFig& ByteFig) {
	if (Flag_Inited == false) {
		return false;
	}
	if (camera.open(SelDev, ApiPreferrence) == false) {
		return false;
	}

	if (camera.isOpened() == false) {
		return false;
	}
	Mat frame;
	camera >> frame;

	ByteFig.FigW = frame.cols;
	ByteFig.FigH = frame.rows;
	ByteFig.FigC = frame.channels();

	if (frame.empty() == TRUE) {
		return false;
	}

	return TRUE;
}

bool _mmCapImg_UVC::AutoGrab(uuByteFig& ByteFig) {
	Mat frame;
	camera >> frame;
	if (frame.empty() == TRUE) {
		return false;
	}
	memcpy(ByteFig.BmpSource, frame.data, ByteFig.FigMem());
	return TRUE;
}

bool _mmCapImg_UVC::AutoStop() {
	camera.release();
	return TRUE;
}